from 工程.J10C.UV接收模块.项目公用库.公共函数 import *

    
def 互调测试初始化():
    zbb仪器.信号源2.打开接口(True)
    zbb仪器.信号源3.打开接口(True)
    zbb仪器.频谱仪1.打开接口()
    产品初始化()
    zbb仪器.信号源2.设置调制关()
    zbb仪器.信号源2.设置射频关()
    zbb仪器.信号源3.设置调制关()
    zbb仪器.信号源3.设置射频关()
    zbb仪器.频谱仪1.设置中心频率(70e6)
    zbb仪器.频谱仪1.设置扫宽(200e3)
    zbb仪器.频谱仪1.设置视频带宽(300)
    zbb仪器.频谱仪1.设置参考幅度(10)
    zbb仪器.频谱仪1.设置分析带宽(3e3)
    zbb仪器.频谱仪1.设置关闭噪声()
    zbb仪器.频谱仪1.设置频标模式正常()

    print("带外互调测试初始化")
    
def 带内互调测试(通道='通道1',模式='AM',频点=108.0):
    工作方式='AM'
    频率=频点*1000000

    if zbb参数.上次测试项目 != 通道:
        zbb参数.上次测试项目 = 通道
        zbb工步.三选框(文本='收动切换通道线缆到--' + 通道)

    zbb产品.被测产品.设置工作模式(模式=模式)
    zbb产品.被测产品.设置频率控制(频点, 通道)

    zbb仪器.信号源2.设置频率(频率)
    zbb仪器.信号源2.设置幅度(-105)
    zbb仪器.信号源2.设置射频开()
    延时(2)
    zbb仪器.频谱仪1.设置单次触发()
    延时(0.4)
    zbb仪器.频谱仪1.设置寻峰值()
    V0 = zbb仪器.频谱仪1.读幅度()
    if V0<-28:
        raise Exception("未找到峰值！！！")

    zbb仪器.信号源2.设置射频关()
    zbb仪器.信号源3.设置频率(频率)
    zbb仪器.信号源3.设置射频开()
    延时(2)
    for i in range(10):
        zbb仪器.信号源3.设置幅度(-110+i)
        延时(0.1)
        zbb仪器.频谱仪1.设置单次触发()
        延时(0.4)
        zbb仪器.频谱仪1.设置寻峰值()
        主峰值=zbb仪器.频谱仪1.读幅度()
        P1 = -110+i
        if math.fabs(主峰值-V0)<0.5:
            break;

    zbb仪器.信号源2.设置幅度(-15)
    zbb仪器.信号源2.设置频率(频率+10E6)
    zbb仪器.信号源3.设置幅度(P1+90)
    zbb仪器.信号源3.设置频率(频率+5E6)
    zbb仪器.信号源2.设置射频开()
    zbb仪器.信号源3.设置射频开()
    延时(2)
    for i in range(20):
        zbb仪器.信号源2.设置幅度(-15-i)
        zbb仪器.信号源3.设置幅度(P1+90-i)
        延时(0.1)
        zbb仪器.频谱仪1.设置单次触发()
        延时(0.4)
        zbb仪器.频谱仪1.设置寻峰值()
        主峰值 = zbb仪器.频谱仪1.读幅度()
        P2 = -15-i
        if 主峰值<V0:
            break;
    互调=P2+105
    项目="带内互调测试('"+通道+"',"+str(频点)+")"
    判断合格保存(项目,互调,80)

def 带外互调测试(通道='通道1',模式='AM',频点=108.0):
    工作方式='AM'
    频率=频点*1000000

    if zbb参数.上次测试通道 != 通道 and zbb参数.上次测试项目 != '带外互调测试':
        zbb参数.上次测试通道 = 通道
        zbb参数.上次测试项目 = '带外互调测试'
        zbb工步.三选框(文本='连接信号源2/信号源3\r\n收动切换通道线缆到--' + 通道)


    zbb产品.被测产品.设置工作模式(模式=模式)
    zbb产品.被测产品.设置频率控制(频点, 通道)

    zbb仪器.信号源2.设置频率(频率)
    zbb仪器.信号源2.设置幅度(-105)
    zbb仪器.信号源2.设置射频开()
    延时(2)
    zbb仪器.频谱仪1.设置单次触发()
    延时(0.4)
    zbb仪器.频谱仪1.设置寻峰值()
    V0 = zbb仪器.频谱仪1.读幅度()

    if V0<-28:
        raise Exception("未找到峰值！！！")

    zbb仪器.信号源2.设置射频关()
    zbb仪器.信号源3.设置频率(频率)
    zbb仪器.信号源3.设置射频开()
    for i in range(10):
        zbb仪器.信号源3.设置幅度(-110+i)
        延时(0.1)
        zbb仪器.频谱仪1.设置单次触发()
        延时(0.4)
        zbb仪器.频谱仪1.设置寻峰值()
        主峰值=zbb仪器.频谱仪1.读幅度()
        P1 = -110+i
        if math.fabs(主峰值-V0)<0.5:
            break;

    zbb仪器.信号源2.设置幅度(-15)
    zbb仪器.信号源2.设置频率(频率-10E6)
    zbb仪器.信号源3.设置幅度(P1+70)
    zbb仪器.信号源3.设置频率(频率-5E6)
    zbb仪器.信号源2.设置射频开()
    zbb仪器.信号源3.设置射频开()
    延时(2)
    for i in range(20):
        zbb仪器.信号源2.设置幅度(-35-i)
        zbb仪器.信号源3.设置幅度(P1+70-i)
        延时(0.1)
        zbb仪器.频谱仪1.设置单次触发()
        延时(0.4)
        zbb仪器.频谱仪1.设置寻峰值()
        主峰值 = zbb仪器.频谱仪1.读幅度()
        P2 = -15-i
        if 主峰值<V0:
            break;
    互调=P2+105
    项目="带外互调测试('"+通道+"',"+str(频点)+")"
    判断合格保存(项目,互调,60)

if __name__=='__main__':
    pass
    互调测试初始化()
    带外互调测试('通道1', 'AM', 108)
    带内互调测试('通道1', 'AM', 108)
